/*
 * @description:
 * @Author: lal
 * @Date: 2019-12-03 11:37:46
 * @LastEditors: lal
 * @LastEditTime: 2020-08-31 10:40:44
 */
const path = require("path");
// const environment = require("./environment");

function resolve(dir) {
  return path.join(__dirname, dir);
}
module.exports = {
  publicPath: "./",
  productionSourceMap: true,
  lintOnSave: true,
  chainWebpack: config => {
    config.resolve.alias
      .set("@root", resolve(""))
      .set("@mock", resolve("mock"))
      .set("@assets", resolve("src/renderer/assets"))
      .set("@", resolve("src/renderer"));
    // 这里只写了两个个，你可以自己再加，按这种格式.set('', resolve(''))
    config.module
      .rule("md")
      .test(/\.md$/)
      .use("raw-loader")
      .loader("raw-loader")
      .end();
  },

  devServer: {
    open: !process.argv.includes("electron:serve"),
  },
  configureWebpack: {
    devtool: "source-map",
    entry: "./src/renderer/main.js",
    resolve: {
      extensions: [".js", ".vue", ".json", ".ts", ".less"],
    },
  },
  // configureWebpack: config => {
  //   console.log(config);
  // },
  pluginOptions: {
    electronBuilder: {
      builderOptions: {
        productName: "electron-demo",
        appId: "electron-demo.desktop",
        win: {
          // icon: "build/icons/icon.ico",
          // 图标路径 windows系统中icon需要256*256的ico格式图片，更换应用图标亦在此处
          target: [
            {
              // 打包成一个独立的 exe 安装程序
              target: "nsis",
              // 这个意思是打出来32 bit + 64 bit的包，但是要注意：这样打包出来的安装包体积比较大，所以建议直接打32的安装包。
              arch: [
                "x64",
                // 'ia32'
              ],
            },
          ],
        },
        // mac: {
        //   icon: "./public/app.png",
        // },
        linux: {
          icon: "build/icons/icon.png",
          target: "AppImage",
        },
        nsis: {
          oneClick: false, // 是否一键安装
          allowElevation: true, // 允许请求提升。 如果为false，则用户必须使用提升的权限重新启动安装程序。
          allowToChangeInstallationDirectory: true, // 允许修改安装目录
          // installerIcon: "build/icons/icon.ico", // 安装图标
          // uninstallerIcon: "build/icons/uninst.ico", //卸载图标
          // installerHeaderIcon: "build/icons/icon.ico", // 安装时头部图标
          createDesktopShortcut: true, // 创建桌面图标
          createStartMenuShortcut: true, // 创建开始菜单图标
          shortcutName: "electron-demo", // 图标名称
          // include: "build/script/installer.nsh" // 包含的自定义nsis脚本
        },
      },
      mainProcessWatch: ["src/main"],
      mainProcessFile: "src/main/main.js",

      customFileProtocol: "./",
    },
  },
};
